const Koa = require('koa')
// 解析数据
const { koaBody } = require('koa-body')
// 处理状态码
const errHandler = require('./errHandler')
// 处理用户路由
const userRouter = require('../router/user.router')
// 实例化koa
const app = new Koa()
// 这个中间件需要在路由中间件挂载之前接上去，可以将post和get中得到的数据值挂载到ctx.request.body中
// 这些复杂的业务擦hi开成一个个功能独立的函数就是中间件
// 在请求和响应之间做一些操作，并且可以将结果传递给下一个函数进行处理
// 当监听到error事件之后，会自动触发errHandler
app.on('error',errHandler)
// 挂载处理数据的方法 -> 在挂载路由之前去挂载
app.use(koaBody())
// 将路由挂载上去 
app.use(userRouter.routes())
// 将app导出
module.exports = app